package com.authine.cloudpivot.ext.dto.model.invoice;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.List;

/**
 * swagger对外接口使用
 * 发票申请单
 */
@Data
@NoArgsConstructor
@AllArgsConstructor
@ApiModel("发票申请单")
public class FinanceInvoiceApplyVO {

    @ApiModelProperty("备注")
    private String memo;
    @ApiModelProperty("设置的基础信息发票ID")
    private Integer chooseInvoiceId;
    @ApiModelProperty("设置的地址ID")
    private Integer chooseAddressId;
    /**
     * true 只对账 false 对账并申请开票
     */
    @ApiModelProperty("true 只对账 false 对账并申请开票")
    private Boolean onlyReconciliation;

    /**
     * ############################################################################################
     * ######################################对外接口所用参数########################################
     * ############################################################################################
     *
     * @return
     */
    @ApiModelProperty("收票人姓名")
    private String receiverName;
    @ApiModelProperty("收票人电话")
    private String receiverMobile;
    @ApiModelProperty("收票地址")
    private String receiverAddress;
    @ApiModelProperty("发票类型 1增值税普通发票 2增值税专用发票 3不开票 4个人类型发票 5增值税普通电子发票")
    private Integer invoiceType;
    @ApiModelProperty("发票抬头")
    private String invoiceName;
    @ApiModelProperty("税号")
    private String invoiceTaxNumber;
    @ApiModelProperty("开票地址")
    private String invoiceAddress;
    @ApiModelProperty("发票电话")
    private String invoicePhone;
    @ApiModelProperty("开户行")
    private String invoiceBank;
    @ApiModelProperty("发票账号")
    private String invoiceAccount;
    @ApiModelProperty("客户订单编号集合")
    private List<Integer> customerOrderIds;
    @ApiModelProperty("订单商品编号集合")
    private List<Integer> orderGoodsIds;
    @ApiModelProperty(value = "JSON格式的扩展属性", example = "{\"ERP-PO\":\"P10086\"}")
    private String extendsAttr;

    @Override
    public String toString() {
        return "FinanceInvoiceApplyVO{" +
                "memo='" + memo + '\'' +
                ", onlyReconciliation=" + onlyReconciliation +
                '}';
    }
}
